//会员产品列表
var $customerMemberProductTable = $('#customerMemberProductTableList');
var jumpType = "";

//初始化操作
$(function(){
    customerProductTableListInit();
    jumpType = $("#jumpType").val();//后端传过来的参数:user-用户系统传过来的;management-管理系统传过来的
});

function customerProductTableListInit(){
    //先销毁表格
    $customerMemberProductTable.bootstrapTable('destroy');
    $customerMemberProductTable.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/customerMemberProduct/selectCustomerMemberProductList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        // serverSort: true,
        uniqueId: 'memberProductId',
        idField: 'memberProductId',
        pageSize: globalPageSize,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: ['50', '100'],//可供选择的每页的行数

        queryParams: queryParams,//查询参数
        columns: [
            {title: '主键', field: 'memberProductId', visible: false},
            {title: '序号', field: 'index', align: 'left', valign: 'middle', width: '60', formatter: indexFormat},
            {title: '会员卡名称',field: 'memberCardName', align: 'left', valign: 'middle',sortable: true},
            {title: '会员产品编码',field: 'memberProductCode', align: 'left', valign: 'middle'},
            {title: '售卡价格', field: 'sellingCardPrice', align: 'left', valign: 'middle'},
            {title: '是否计入会员产品业绩', field: 'whetherIncludedAchievement',align: 'left', valign: 'middle',formatter: includedAchievementFormat},
            {title: '会员服务总次数', field: 'serviceNumber', align: 'left', valign: 'middle'},
            {title: '产品有效期',field: 'productPeriodValidity',align: 'left', valign: 'middle',sortable: true,formatter: productPeriodValidityFormat},
            {title: '业绩换算比例', field: 'performanceConversionRatio', sortable: true,align: 'left', valign: 'middle'},
            {title: '是否启用',field: 'productStatus', align: 'left', width: '80', formatter: productStatusFormat},
            {title: '操作',field:'operate',align:'right',width: '96',events:operateEvents,formatter: genderOpt},
        ],
        responseHandler: function (result) {
            if(result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            if(jumpType == 'user'){
                $customerMemberProductTable.bootstrapTable('hideColumn', 'productStatus');
            }

        },
        onLoadError: function (status) {
            if (status == 403) {
                alert("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                alert("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}

//会员产品列表--查询参数
function queryParams(params){
    params.pageSize = params.limit;
    params.pageIndex = (params.offset / params.limit) + 1;
    params.sortName = params.sort; //排序列名
    params.sortOrder = params.order;//排序方式
    params.sysType = $("#jumpType").val();//系统类型(用户-user;管理-management)

    params.productStatus = $("input[name='productStatus']:checked").val();//值为0时是只显示启用的，为""时查询全部
    params.memberCardName = $('#memberCardName').val();//会员卡名称
    return params;
}

//会员产品列表--序号
function indexFormat(value, row, index) {
    return index + 1;
}

//会员产品列表--是否计入会员产品业绩
function includedAchievementFormat(value, row, index){
    if (value == null || value == undefined) {
        return "-";
    } else if (value == 0) {
        return "是";
    } else if (value == 1) {
        return "否";
    }
}

//会员产品列表--产品有效期
function productPeriodValidityFormat(value, row, index) {
    var html = '';
    if(row.productPeriodValidityStart == null && row.productPeriodValidityEnd == null){
        html = '-- 至 --';
    }else{
        html = row.productPeriodValidityStart + ' 至 ' + row.productPeriodValidityEnd;
    }
    return html;
}

//会员产品列表--停用、启用操作
function productStatusFormat(value, row, index){
    var productStatusHtml ='';
    var is_checked = '';
    if (value == null || value == undefined) {
        return "";
    }else if(value == 1){
        is_checked = '';
    }else if (value == 0) {
        is_checked = 'checked="checked"';
    }
    productStatusHtml=  '<label class="lyear-switch switch-solid switch-success">' +
                            '<input type="checkbox" id="productStatus' + row.memberProductId  + '" ' + is_checked + '>' +
                            '<span  onClick="updateProductStatus(\'' + row.memberProductId + '\', \'' + value + '\')"></span>' +
                        '</label>';
    return productStatusHtml;
}

//会员产品列表--停用、启用调用后端接口
function updateProductStatus(memberProductId,productStatus){
    var productStatus = (productStatus == 0) ? 1 : 0; // 发送参数值跟当前参数值相反
    var confirmMessage = '';
    if (productStatus == 0) {
        confirmMessage = "确定启用吗？";
    } else {
        confirmMessage = "确定停用吗？";
    }

    $.alert({
        title: '提示',
        content: confirmMessage,
        buttons: {
            confirm: {
                text: '确认',
                btnClass: 'btn-primary',
                action: function () {
                    $.ajax({
                        type: "post",
                        url: "/customerMemberProduct/updateProductStatus",
                        data: {
                            memberProductId: memberProductId,
                            productStatus: productStatus
                        },
                        dataType: 'json',
                        success: function (data, status) {
                            if (data.code == '000000') {
                                if (data) {
                                    if (data.code == '000000') {
                                        contactPersonData = data.data;
                                    }
                                }
                            } else {
                                $.alert(data.message);
                                $customerMemberProductTable.bootstrapTable('updateCellById', {id: memberProductId, field: 'productStatus', value: productStatus}); // 因开关点击后样式是变的，失败也重置下
                            }
                        },
                        error: function () {
                            $.alert('修改失败，请稍后再试!');
                            $customerMemberProductTable.bootstrapTable('updateCellById', {id: memberProductId, field: 'productStatus', value: productStatus}); // 因开关点击后样式是变的，失败也重置下
                        }
                    });
                }
            },
            cancel: {
                text: '取消',
                action: function () {
                    if(productStatus == 0){
                        $("#productStatus" + memberProductId).prop('checked',false);
                    }else {
                        $("#productStatus" + memberProductId).prop('checked',true);
                    }
                }
            }
        }
    });
}

/**
 * 自定义操作列内容
 */
function genderOpt(value, row, index) {
    let html = '';
    if(jumpType == "management"){//管理系统
        html += '<a class="js-create-tab" data-title="服务项管理" data-url="/front/customerProduct/service/info?memberProductId=' + row.memberProductId + '">服务项管理</a>';
    }
    if(jumpType == "user"){//用户系统
        html += '<a class="js-create-tab" data-title="会员产品详情" data-url="/front/customerProduct/detail/info?memberProductId=' + row.memberProductId + '">详细</a>';
    }
    return html;
}

/**
 * 自定义操作列事件
 */
window.operateEvents = {
    //编辑点击事件
    'click #edit': function(e, value, row, index) {
        parent.$(parent.document).data('multitabs').create({
            iframe: true,
            title: '产品编辑',
            url: "/front/productManager/editProduct?customerProductId=" + row.customerProductId
        }, true);
    }
};

/**
 * 新增会员产品
 * @Author yincuimei
 */
function addMemberProduct(){
    parent.$(parent.document).data('multitabs').create({
        iframe : true,
        title : '新增会员产品',
        url : "/front/productManager/addMemberProduct"
    }, true)
}